草庐IT

android JSONArray 长度

全部标签

c++ - C++ 中 protobuf 消息的长度前缀

我正在使用protobuf序列化我通过C++中的套接字连接发送的消息。对于通信,我想在消息中添加一个header,指示消息的长度。你怎么看这个实现?我做了一些研究,这就是我总结的结果。有没有更好的方法来做到这一点?这个实现会引起任何麻烦吗?我知道有对Java的API支持,但不幸的是不支持C++。boolsend_message(intsocket,my_protobuf::Messagemessage){google::protobuf::uint32message_length=message.ByteSize();intprefix_length=sizeof(message_le

c++ - 如何在不复制或查找的情况下获得 const stringstream 缓冲区的长度?

我有一个conststd::stringstream并希望找出其底层字符串缓冲区中有多少字节。我不能seekg到最后,tellg然后seekg重新开始,因为这些操作都不可用const。我不想得到str().size()因为str()返回一个拷贝,这可能不是一个微不足道的数据量。我有什么好的选择吗?(流本身以const的形式呈现给我,只是因为它是另一种类型的成员,并且我收到了对该类型对象的const引用。流表示一个“文档”,它的封装对象代表一个CGI响应,我正在尝试从Content-Length中生成准确的operatorHTTPheader行。) 最佳答案

c++ - 优化可变长度编码

我有一个案例需要压缩很多通常很小的值。因此,我使用可变长度字节编码(具体来说是ULEB128)来压缩它们:size_tcompress_unsigned_int(unsignedintn,char*data){size_tsize=0;while(n>127){++size;*data++=(n&127)|128;n>>=7;}*data++=n;return++size;}有没有更有效的方法来做到这一点(也许使用SSE)?Edit:压缩后,结果被存储到data中,占用size个字节。然后,在下一个unsignedint上调用压缩函数。 最佳答案

c++ - 为什么我无法读取长度超过 4094 个字符的 UTF-16 文件?

一些信息:我只在Linux上试过这个我已经尝试过GCC(7.2.0)和Clang(3.8.1)据我了解,它需要C++11或更高版本我运行它时会发生什么我得到预期的字符串“abcd”重复,直到它达到4094个字符的位置。之后它输出的就是这个符号“?”直到文件结束。我对此有何看法?我认为这不是预期的行为,它一定是某个地方的错误。可用于测试的代码:#include#include#include#includevoidcreateTestFile(){std::ofstreamfile("utf16le.txt",std::ofstream::binary);if(file.is_open(

mongodb - 在 Mongodb/pymongo 中按字符串长度排序

我想知道是否有人知道如何按字符串长度对mongodbfind()结果进行排序。我尝试过类似db.foo.find().sort({item.lenght:-1})但显然不起作用。有人可以帮助我并建议我在pymongo中做同样的事情吗? 最佳答案 我个人喜欢在聚合框架中看到很多东西(和基本API),例如:数学函数log(如对数)细胞地板数组总和字符串长度仅举几例。这不是在“ceil”和“floor”等情况下使用$mod运算符或其他方式的模糊用法。但我离题了。您的“字符串长度”属于这一类。提出关于它的JIRA问题。但现在你可以使用map

mongodb - 在 Mongodb/pymongo 中按字符串长度排序

我想知道是否有人知道如何按字符串长度对mongodbfind()结果进行排序。我尝试过类似db.foo.find().sort({item.lenght:-1})但显然不起作用。有人可以帮助我并建议我在pymongo中做同样的事情吗? 最佳答案 我个人喜欢在聚合框架中看到很多东西(和基本API),例如:数学函数log(如对数)细胞地板数组总和字符串长度仅举几例。这不是在“ceil”和“floor”等情况下使用$mod运算符或其他方式的模糊用法。但我离题了。您的“字符串长度”属于这一类。提出关于它的JIRA问题。但现在你可以使用map

c++ - 未排序长度 n 数组中 k 个最大元素的索引

我需要在C++中找到未排序、长度为n、数组/vector的k个最大元素的索引,其中k在没有nth_element()的情况下实现它似乎我必须遍历整个数组一次,在每一步填充最大元素的索引列表。标准C++库中是否有任何内容可以使其成为单行或任何巧妙的方式来自己仅用几行代码实现它?在我的特殊情况下,k=3和n=6,因此效率不是一个大问题,但如果找到一种干净有效的方法来对任意k和n执行此操作,那就太好了。看起来像MarkthetopNelementsofanunsortedarray可能是我能在SO上找到的最接近的帖子,那里的帖子是Python和PHP。 最佳答案

c++ - 根据缓冲区长度将空终止字符数组复制到 std::string

也许只是缺少咖啡,但我正在尝试从具有已知最大长度的空终止char数组创建std::string和不知道怎么弄。autos=std::string(buffer,sizeof(buffer));..是我最喜欢的候选者,但由于C++字符串不是以空值结尾的,因此该命令将复制sizeof(buffer)字节,而不管包含任何“\0”。autos=std::string(buffer);..从buffer复制,直到找到\0。这几乎是我想要的,但我不能信任接收缓冲区,所以我想提供一个最大长度。当然,我现在可以像这样集成strnlen():autos=std::string(buffer,strnle

c++ - 如何解决 Visual C++ 200 5's "修饰名称长度超出,名称被截断“警告?

例如,假设我有一段代码看起来像这样:mutablestd::vector>>>>myFreakingLongVectorThing;我收到如下警告:C:\ProgramFiles(x86)\MicrosoftVisualStudio8\VC\include\xstring(1665):warningC4503:'std::vector::operator[]':decoratednamelengthexceeded,namewastruncatedwith[_Ty=std::vector>>>>]有没有什么办法可以重写那个该死的长vector来避免收到警告?我仍然希望数据结构相同,但没

C++ - 如何找到整数的长度

我正在尝试找到一种方法来查找整数的长度(位数),然后将其放入整数数组中。该作业还要求在不使用STL的类的情况下执行此操作,尽管程序规范确实说我们可以使用“通用C库”(我会问我的教授是否可以使用cmath,因为我假设log10(num)+1是最简单的方法,但我想知道是否还有其他方法)。啊,这不必处理负数。唯一的非负数。我正在尝试创建一个变体“MyInt”类,它可以使用动态数组处理更广泛的值。任何提示将不胜感激!谢谢! 最佳答案 整数n在任何基数中的位数可以通过除法得到,直到你完成为止:unsignedintnumber_of_digi